package chapter5.additional;

// 外部类
public class OuterClass {
    private String outerField = "外部类字段";

    // 内部类（成员内部类）
    class InnerClass {
        private String innerField = "内部类字段";

        public void display() {
            // 内部类可以直接访问外部类的私有成员
            System.out.println("访问外部类字段: " + outerField);
            System.out.println("访问内部类字段: " + innerField);
        }
    }

    // 外部类方法，用于创建内部类实例
    public void createInnerClass() {
        // 在外部类中创建内部类实例
        InnerClass inner = new InnerClass();
        inner.display();
    }

    public static void main(String[] args) {
        // 创建外部类实例
        OuterClass outer = new OuterClass();

        // 方式1：通过外部类方法创建内部类实例
        outer.createInnerClass();

        // 方式2：直接创建内部类实例
        OuterClass.InnerClass inner = outer.new InnerClass();
        inner.display();
    }
}